package 数组;

import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

/**
 * https://leetcode-cn.com/problems/contains-duplicate/
 *
 * 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次,返回 true;如果数组中每个元素互不相同，返回 false 。
 */
public class _217_存在重复元素 {
    //哈希表做
    public boolean containsDuplicate(int[] nums) {
        if(nums == null || nums.length == 0) return false;
        // nums = 1,2,3,1;
        HashMap<Integer,Object> map = new HashMap<>();

        for (int num : nums) {
            if(map.containsKey(num)){
                return true;
            }else{
                map.put(num,null);
            }
        }
        return false;
    }

    //哈希集合
    public boolean containsDuplicate1(int[] nums) {
        if(nums == null || nums.length == 0) return false;

        Set<Integer> set = new HashSet<>();
        for (int num : nums) {
            if(!set.add(num)){
                return true;
            }
            set.add(num);
        }
        return false;
    }
}
